﻿using System;
using System.Collections.Generic;

namespace MQTTServer.Models
{
    /// <summary>
    /// 多人名单查询
    /// </summary>
    public class SearchPersonListAck
    {
        /// <summary>
        ///  多人名单查询
        /// </summary>
        public string Operator { get; set; }

        /// <summary>
        /// 消息 id,区分每一条消
        /// </summary>
        public string MessageId { get; set; }

        /// <summary>
        ///  SearchPersonListAckInfo
        /// </summary>
        public SearchPersonListAckInfo Info { get; set; }
    }

    public class SearchPersonListAckInfo
    {
        /// <summary>
        /// 匹配名单总数
        /// </summary>
        public int TotalPersonNum { get; set; }

        /// <summary>
        /// 单次返回匹配名单数
        /// </summary>
        public int QueryPersonNum { get; set; }

        /// <summary>
        /// 人数
        /// </summary>
        public int PersonNum { get; set; }

        /// <summary>
        /// 一体机设备号 id,返回值
        /// </summary>
        public string FacesluiceId { get; set; }

        /// <summary>
        /// 人数
        /// </summary>
        public List<SearchPersonListAckInfoList> List { get; set; }
    }

    public class SearchPersonListAckInfoList
    {
        public int LibID;

        /// <summary>
        ///  平台生成的 id,唯一标识不同人员，建议使用身份证号，传入 customId设备已经存在视为修改，否则为增加
        /// </summary>
        public string CustomId { get; set; }

        /// <summary>
        ///  0: 白名单 1: 黑名单
        /// </summary>
        public PersonType PersonType { get; set; }

        /// <summary>
        ///  人员名字
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        ///  性别
        /// </summary>
        public Gender Gender { get; set; }

        /// <summary>
        ///  民族
        /// </summary>
        public Nation Nation { get; set; }

        /// <summary>
        ///  韦根卡号生成方式(0: 公用卡号 1: 自动生成 2: 手动输入 3: 不使用门禁)
        /// </summary>
        public CardType2 CardType2 { get; set; }

        /// <summary>
        ///  证件类型：0 身份证
        /// </summary>
        public CardType CardType { get; set; }

        /// <summary>
        ///  证件号码
        /// </summary>
        public string idCard { get; set; }

        /// <summary>
        ///  生日
        /// </summary>
        public DateTime birthday { get; set; }

        /// <summary>
        ///  电话号码
        /// </summary>
        public string telnum1 { get; set; }

        /// <summary>
        ///  籍贯
        /// </summary>
        public string native { get; set; }

        /// <summary>
        ///  住址
        /// </summary>
        public string address { get; set; }

        /// <summary>
        ///  备注
        /// </summary>
        public string notes { get; set; }

        /// <summary>
        ///  韦根门禁卡号(userid) cardType2 为 2 时必填
        /// </summary>
        public int CardNum2 { get; set; }

        /// <summary>
        ///  ID 卡卡号，最大长度为 10 个字符 长度,针对内置刷卡机型（含结束 符），如果只是重新编辑名单，不 改变卡号，则不需要传入 RFIDCard 关键字
        /// 如果 RFCardMode=0， 填 入 十 进 制 字 符 串 (“1369406761”)；如 果 RFCardMode=1，填 入 十 六 进 制 字 符 串 (“519F7D29”)
        /// </summary>
        public string RFIDCard { get; set; }

        /// <summary>
        ///  名单类型
        /// </summary>
        public TempCardType TempCardType { get; set; }

        /// <summary>
        ///  临时名单开始时间名单类型为临时名单 1 或 2 或 4 时必填
        /// </summary>
        public DateTime CardValidBegin { get; set; }

        /// <summary>
        ///  临时名单结束时间名单类型为临时名单 1 或 2 或 4 时必填
        /// </summary>
        public DateTime CardValidEnd { get; set; }
    }
}